#ifndef SESSION_TREE_ITEM_H
#define SESSION_TREE_ITEM_H
#include <QList>
//
class CSessionTreeItem
{
public:
    explicit CSessionTreeItem(CSessionTreeItem *parent = nullptr);
     ~CSessionTreeItem();

    void addChild(CSessionTreeItem *item);
     void removeChildren();
    void removeChildren(int row);
    bool getIsDir();
    void setIsDir(bool fileType);
    void setData(QString value);
    CSessionTreeItem *child(int row);           // 返回
    CSessionTreeItem *parent();                 // 返回父亲节点
    QVariant getData(int column = 0) const;     // 获取数据
    QString getSessionName();
     int childCount() const { return m_childrenList.count(); }
    // 保存该节点是其父节点的第几个子节点，查询优化所用
    void setRow(int row) { m_row = row; }
    // 返回本节点位于父节点下第几个子节点
    int row() const { return m_row; }


private:
    bool m_isDir;                               // 是否是文件或者目录 ， true表示是目录，用户显示不同的图标
    QString m_data;                             // 展示的数据
    QString m_sessionName;                      // 显示自定义的session名字
    QString m_name;                             // 显示名字
    QString m_ip;                               // ip地址
    QString m_port;                             // 登录，端口
    QString m_user;                             // 登录，用户
    QString m_password;                         // 登录，密码
    QList<CSessionTreeItem*> m_childrenList;    // 子列表
    CSessionTreeItem * m_parent;                // 父节点
    int m_row;                                  // 此子位于父节点中第几个孩子

};

#endif // SESSION_TREE_ITEM_H
